import { EventEmitter } from "events"; import { OpenAICallTrackerCallback } from "../../openai_cost_tracker"; export type OpenAiCostTrackerSqliteEntry = { dateIso: string; bucketId: string; modelName: string; costSpent: number; costSaved: number; }; export type OpenAiCostTrackerSqliteModelCost = { modelName: string; costSpent: number; costSaved: number; }; export type OpenAiCostTrackerSqliteBucketCost = { bucketId: string; costSpent: number; costSaved: number; models: OpenAiCostTrackerSqliteModelCost[]; }; export type OpenAiCostTrackerSqliteCostSummary = { total: { costSpent: number; costSaved: number; }; buckets: OpenAiCostTrackerSqliteBucketCost[]; }; /** * SQLite-backed cost tracker for OpenAI API calls. * Stores costs in a SQLite database with schema: dateIso, bucketId, modelName, costSpent, costSaved */ export declare class OpenAiCostTrackerSqlite extends EventEmitter { static EVENT: { BUCKET_WRITTEN: string; }; private _database; private _dbPath; constructor(dbPath: string); /** * Initialize the database and create schema if needed */ init(): Promise; /** * Close the database connection */ close(): Promise; /** * Get all individual cost tracking records from the database */ getAllRecords(): Promise; /** * Get a JSON summary of costs grouped by bucket and model using SQL aggregation */ getSummaryCosts(): Promise; /** * Get the tracker callback function for use with OpenAI cost tracker */ getTrackerCallback(): Promise; /** * Callback to track OpenAI API costs and store in SQLite * @param bucketId - identifier for grouping costs * @param response - OpenAI API response */ private _trackerCallback; /** * Callback to track OpenAI API costs and store in SQLite * @param bucketId - identifier for grouping costs * @param response - OpenAI API response */ private _trackerCallback_EventStream; /** * Callback to track OpenAI API costs and store in SQLite * @param bucketId - identifier for grouping costs * @param response - OpenAI API response */ private _trackerCallback_ApplicationJson; private _trackerCallback_Embeddings; /** * Callback to track OpenAI API costs and store in SQLite * @param bucketId - identifier for grouping costs * @param response - OpenAI API response */ private _trackerCallbackPostProcess; /** * Print cost summary in a formatted, colorized output */ static printCostSummary(summary: OpenAiCostTrackerSqliteCostSummary, { colorize }?: { colorize?: boolean; }): Promise; /** * Convert cost tracking records to CSV format */ static recordsToCsv(records: OpenAiCostTrackerSqliteEntry[]): string; }